Computer-aided design (CAD) drawings prepared by architects, engineers, designers, planners, and the like require large amounts of data to be stored in files. CAD software includes an API to access the large quantities of data. Applications such as, e.g., MicroStation® products, which are developed by Bentley Systems, Inc., Exton, Pa. U.S.A., and AutoCAD® products, which are developed by Autodesk, Inc., San Rafael, Calif., U.S.A. are typical of such CAD software, which may be used in the Engineering, Construction, and Operations (ECO) marketplace.
A typical CAD project employed in the engineering context is stored in numerous files. Each file typically contains one or more engineering models, each of which represents an engineering domain (e.g., structural, electrical, mechanical, plumbing). Moreover, each engineering model requires numerous items represented by a series of elements to support the complex and precise nature of each design. In this context, the term “element” is used to mean a record containing a variable number of bytes of data arranged in a format that can be interpreted by a program. The term “element” differs from the common notion of an “object” in that each element can have a variable number of bytes, whereas the size of an object is typically defined by its class. It is the variable-sized nature of elements that causes their persistent storage to be complicated, because they cannot be written in fixed sized records and arranged in tables, as is typically done in relational databases, for example.
Each item in a model is represented by at least one element or an aggregation of elements. For example, a structural drawing can hold the column and beam layout for a floor plan, which are internally represented by lines, squares and rectangles and additional properties. In this example, an individual beam may be a collection of lines, squares and rectangle elements. The structure of the floor plan may be more complex and require many nested levels of elements to accurately provide a structural representation.
Attributes define the characteristics of an element, for example, its color or line width, and how the element is displayed to a user. It is common practice for attributes of elements stored in a CAD data file to be controlled by a named style. A style itself is a non-graphical entity which records a particular set of values for the attributes needed to construct the element. Similarly, a level (also known as layer) may also control the attributes of elements. A level is also a non-graphical entity. Every element is typically associated with one or more levels. A style is applied to specific types of elements, such as text and dimension elements.
Every level and style has a unique name that identifies its data. Such data can be generalized by calling it “resource data”. There can be other forms of resource data such as “Named Views” or “Named Viewgroups.” A common feature of such resource data is that it provides a way to reuse information that is used repeatedly or that must be controlled in a centralized fashion.
Every CAD data file can have its own set of resource data. Typically, a group of users work on a set of files during the design and construction process, which set of files in many instances may run into hundreds of files. Files may reference each other. The sum of all files and their implied relationships define a project. Each file consists of a sub-set of all the data in a project.
Typically, multiple CAD data files of a project need a common sub-set of resource data. As the project progresses, this data tends to change and grow. Any data stored in a particular design slowly becomes out of date from the master list. Users need a simple method to update individual files to match the resource data.
Moreover, over time many projects are created. Different projects need different sets of resource data. Projects span disciplines and departments. Different disciplines and departments need their own sets of resource data. Combining the resource data required by different projects, disciplines and departments creates the need for a large number of individual resource data entities and consequently a need to standardize the resource data.
Previous methods for creating standardized resource data and for updating individual design files to match the resource data have not addressed all user needs. For example, MicroStation v.7 Settings Manager is a system that provides users with access to settings and styles. The system is centralized in that all users can access the resource data from one library file. However, the library file is in a specialized format. A special tool must be used to create and maintain data in the library file. Also, the library file must be accessed using a different special tool in order to load the data before starting the tool that utilizes this data. Furthermore, this system only allows the attachment of a single data library to a design file.
The MicroStation v.7 Cell Library System allows the user to acquire graphic data from a collection of library files. The graphic data is also in a specialized format and requires a special tool to export the data to the library. Furthermore, this system does not store most of the non-graphic data due to the specialized file format.
AutoCAD Design Center is a tool used to import cells and styles from other files. Although the files are of the same format as the working file, the data is only available through a specialized tool. The data must be imported into the current file before it can be used as part of the drawing. Also, there is no synchronization from the library data to the current data. Furthermore, each file from which data is imported must be selected individually rather than having a list of all available resource data.
Thus, there is a need for a system and method to centralize, control and distribute predefined information used for creating CAD files and models. The system and method should allow for central control of the information to limit changes, but allow the information to be instantly accessible to users at the point at which the information is to be applied.